//注入gulp依赖
var gulp = require("gulp");

//注入gulp-sass插件,sass模块名;
var sass = require("gulp-sass");

// 注入browser-sync插件()
var browserSync = require("browser-sync");

//注入ueref拼接插件(拼接js)
var useref = require("gulp-useref");

//注入js压缩插件
var uglify = require("gulp-uglify");
//创建sass的编译任务
gulp.task('sass',function(){
	return gulp.src('app/scss/*.scss')//指明源文件路径
	.pipe(sass())  //调用sass()编译方法(sass模块)
	.pipe(gulp.dest("app/css"))//指明处理后文件路径
	.pipe(browserSync.reload({stream:true}))
});
//创建一个重建的任务
gulp.task('browserSync',function(){
	return browserSync({
		server:{
			baseDir:'app'
		}
	})
});
//使用watch命令创建一个任务
gulp.task('watch',['sass','browserSync'],function(){
	gulp.watch('app/scss/*.scss',['sass']);
	gulp.watch('app/js/*.js',browserSync.reload);
	gulp.watch('app/*.html',browserSync.reload);
});
//执行默认的任务序列,终端(cmd)直接输入gulp可执行
gulp.task('default',['browserSync','sass','watch']);

//以下任务,不是频繁使用,大多用于上线时
//创建一个拼接的任务
gulp.task('useref',function(){
	return gulp.src('.html')
	.pipe(useref())
	.pipe(gulp.dest('dist'))
});

//创建一个js压缩的任务
gulp.task('uglify',function(){
	return gulp.src('dist/js/*.js')
	.pipe(uglify())
	.pipe(gulp.dest('dist/minjs'));
});

//图片处理
var gulp = require('gulp'); // 基础库
var imagemin = require('gulp-imagemin'), // 图片压缩
  pngquant = require('imagemin-pngquant'); // 深度压缩

gulp.task('images', function(){
  return gulp.src('app/images/*.{png,jpg,gif,svg}') // 指明源文件路径、并进行文件匹配
    .pipe(imagemin({
      progressive: true, // 无损压缩JPG图片
      svgoPlugins: [{removeViewBox: false}], // 不移除svg的viewbox属性
      use: [pngquant()] // 使用pngquant插件进行深度压缩
    }))
    .pipe(gulp.dest('dist/images')); // 输出路径
});